package com.jsfcompref.model;


import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.xml.ws.WebServiceContext;
import webservices.Mensaje;
import webservices.Proveedor;
import webservices.Servicio;
import javax.xml.ws.WebServiceRef;
import javax.annotation.Resource;
import javax.el.ELContext;
import javax.el.ExpressionFactory;
import javax.el.ValueExpression;
import javax.faces.application.Application;
import javax.faces.context.FacesContext;
import org.primefaces.model.StreamedContent;
import webservices.AgenciaWS;

@ManagedBean
@SessionScoped

public class MensajeBean {
    @WebServiceRef(wsdlLocation = "http://190.17.0.161:8080/AgenciaWS/AgenciaWS?wsdl")
    public webservices.AgenciaWS_Service service;
   
    @Resource
    protected WebServiceContext context;
    
    Servicio serv;
    Proveedor prov;
    Mensaje mensaje;

   
    public void MensajeBean(){
    
    //this.mensaje = new Mensaje();
    }
    
    public Proveedor getProv() {
        return prov;
    }

    public void setProv(Proveedor prov) {
        this.prov = prov;
    }

    public Servicio getServ() {
        return serv;
    }

    public void setServ(Servicio serv) {
        this.serv = serv;
    }

    public Mensaje getMensaje() {
        return mensaje;
    }

    public void setMensaje(Mensaje mensaje) {
        this.mensaje = mensaje;
    }
    
    public String enviar()
    {
    
        mensaje.setLeido(false);
        
        FacesContext context2 = FacesContext.getCurrentInstance();
        ELContext elContext = context2.getELContext();
        Application application = context2.getApplication();
            
        ExpressionFactory expressionFactory = application.getExpressionFactory();
        ValueExpression ve = expressionFactory.createValueExpression(elContext, "#{uBean}",UBean.class);
        UBean ubean = (UBean) ve.getValue(elContext);
        
        mensaje.setEmisor(ubean.getCliente());
        
        AgenciaWS port = service.getAgenciaWSPort(); 
        
        serv.getMensajes().add(mensaje);
        port.enviarMensaje(serv);
      
    return "inicio";
    }
    
}
